<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>绝对定位</title>
    <style>
        body{
            font-size: 40px;
        }
        .box1 {
            width: 400px;
            height: 400px;
            background-color: rgb(48, 17, 77);
            /* position: absolute; */
            /* left: 0px;
            top: 0px; */
            float:left;
        }

        /* 
            绝对定位
                - 当元素的position属性值设置为absolute时，则开启了元素的绝对定位
                - 绝对定位的特点：
                    1.开启绝对定位后，如果不设置偏移量元素的位置不会发生变化
                    2.开启绝对定位后，元素会从文档流中脱离
                    3.绝对定位会改变元素的性质，行内变成块，块的宽高被内容撑开
                    4.绝对定位会使元素提升一个层级
                    5.绝对定位元素是相对于其包含块进行定位的

                    包含块( containing block )
                        - 正常情况下：
                            包含块就是离当前元素最近的祖先块元素
                            <div> <div></div> </div>
                            <div><span><em>hello</em></span></div>

                        - 绝对定位的包含块:
                            包含块就是离它最近的开启了定位的祖先元素，
                                如果所有的祖先元素都没有开启定位则根元素就是它的包含块

                        - html（根元素、初始包含块）

            */
        .box2 {
            width: 300px;
            height: 300px;
            background-color: rgb(30, 148, 119);
            /* position: absolute; */
            /* top: 0px;
            left: 0px; */

        }

        .box3 {
            width: 100px;
            height: 100px;
            background-color: rgb(133, 30, 64);
            float:left;
            clear:both;
            /* position: absolute;
            top: 0px;
            left: 0px; */
        }
        .clearfix::after,.clearfix::before{
            content:"";
            display:block;
            clear:both;
        }
        .box4 {
            width: 200px;
            height: 200px;
            background-color: rgb(107, 179, 14);
            /* position: absolute; */
            margin-top: 30px;
            /* top: 0px;
            left: 0px; */
        }
        .box5 {
            width: 100px;
            height: 100px;
            background-color: rgb(44, 38, 134);
            /* margin-top: 20px; */
            /* position: absolute;
            top: 0px;
            left: 0px; */
        }
    </style>
</head>

<body>
    <div class="box1">1
        <div class="box2">2
            <div class="box4">3
                <div class="box5">4</div>
            </div>
        </div>
    </div>

    <div class="box3">5</div>
</body>

</html>